
package com.tencent.weibo.api
{
	import com.tencent.weibo.log.LevelLogger;
	import com.tencent.weibo.operation.IRequestOperation;
	import com.tencent.weibo.operation.URLRequestOperation;
	
	import flash.events.IEventDispatcher;
	
	import mx.logging.ILogger;
	
	/**
	 * 搜索相关的API
	 * @langversion 3.0
	 * @playerversion Flash 9
	 * @playerversion AIR 1.1
	 *
	 */
	public class Search extends AbstractAPI
	{
		/**
		 * 日志输出对象
		 */
		public static var logger:ILogger=LevelLogger.getLogger("com.tencent.weibo.api.Search");
		
		/**
		 * 1.搜索用户
		 * @param keyword 搜索关键字
		 * @param pagesize 每页大小
		 * @param page 页码
		 * @return IRequestOperation实例
		 */		
		public function user(keyword:String,pagesize:int=20,page:int=0):IRequestOperation
		{
			checkAccessToken();
			var url:String = config.urlBase+"search/user";
			var attachParms:Object = {};
			attachParms.keyword = keyword;
			attachParms.pagesize = pagesize;
			attachParms.page = page;
			return generateDataRequest(url,attachParms,config.requestMethod);
		}
		/**
		 * 2.搜索微博
		 * @param keyword 搜索关键字
		 * @param pagesize 每页大小（1-30个）
		 * @param page 页码
		 * @param contenttype 消息的正文类型（按位使用）0-所有，0x01-纯文本，0x02-包含url，0x04-包含图片，0x08-包含视频，0x10-包含音频
		 * @param sorttype 排序方式 0-表示按默认方式排序(即时间排序(最新))
		 * @param msgtype 消息的类型（按位使用） 0-所有，1-原创发表，2 转载，4-所有，8-回复(针对一个消息，进行对话)，0x10-空回(点击客人页，进行对话)
		 * @param searchtype 搜索类型 0-默认搜索类型（现在为模糊搜索），1-模糊搜索，8-实时搜索
		 * @param starttime 开始时间，用UNIX时间表示（从1970年1月1日0时0分0秒起至现在的总秒数）
		 * @param endtime 结束时间，与starttime一起使用（必须大于starttime）
		 * @param province 省编码（不填表示忽略地点搜索）
		 * @param city 市编码（不填表示按省搜索）
		 * @param longitue 经度，（实数）*1000000
		 * @param latitude 纬度，（实数）*1000000
		 * @param radius 半径（整数，单位米，不大于20000）
		 * @return IRequestOperation实例
		 */		
		public function t(keyword:String,pagesize:int=20,page:int=0,contenttype:int=0,sorttype:int=0,msgtype:int=0,searchtype:int=0,starttime:String="0",endtime:String="0",province:String="",city:String="",longitue:String="",latitude:String="",radius:int=0):IRequestOperation
		{
			checkAccessToken();
			var url:String = config.urlBase+"search/t";
			var attachParms:Object = {};
			attachParms.keyword = keyword;
			attachParms.pagesize = pagesize;
			attachParms.page = page;
			attachParms.contenttype = contenttype;
			attachParms.sorttype = sorttype;
			attachParms.msgtype = msgtype;
			attachParms.searchtype = searchtype;
			attachParms.starttime = starttime;
			attachParms.endtime = endtime;
			attachParms.province = province;
			attachParms.city = city;
			attachParms.longitue = longitue;
			attachParms.latitude = latitude;
			attachParms.radius = radius;
			return generateDataRequest(url,attachParms,config.requestMethod);
		}
		/**
		 * 3.搜索用户通过标签
		 * @param keyword 搜索关键字
		 * @param pagesize 每页大小
		 * @param page 页码
		 * @return IRequestOperation实例
		 */		
		public function userByTag(keyword:String,pagesize:int=20,page:int=0):IRequestOperation
		{
			checkAccessToken();
			var url:String = config.urlBase+"search/userbytag";
			var attachParms:Object = {};
			attachParms.keyword = keyword;
			attachParms.pagesize = pagesize;
			attachParms.page = page;
			return generateDataRequest(url,attachParms,config.requestMethod);
		}
		
		
	}
}